home *** CD-ROM | disk | FTP | other *** search
/ Suzy B Software 2 / Suzy B Software CD-ROM 2 (1994).iso / programm / prog_a2m / fortran / lies.txt < prev    next >
Text File  |  1995-05-02  |  15KB  |  437 lines

  1.     ------------------------------------------------
  2.     |             BC-FORTRAN77 Vers.1.3C           |
  3.     |  Copyright: Andre Koestli                    |
  4.     |     1990    Martin-Luther-Str.63             |
  5.     |             D7000 Stuttgart 50               |
  6.     |----------------------------------------------|
  7.     | Die Version "C" von BC-FORTRAN77, bestehend  |
  8.     | aus den nachfolgend beschriebenen 5 Dateien, |
  9.     | ist vollstaendig von mir programmiert. Ich   |
  10.     | gestatte freies Nutzungsrecht an Vers.C fuer |
  11.     | nichtkommerzielle Anwendungen, alle Rechte   |
  12.     | bleiben jedoch bei mir, insbesondere ist der |
  13.     | Verkauf der Vers.C, auch im Zusammenhang mit |
  14.     | anderen Produkten, nicht erlaubt. Jeder Ko-  |
  15.     | pie ist dieser Text unveraendert beizufuegen.|
  16.     | Fuer kommerzielle Anwendungen ist die Vers.P |
  17.     | vorgesehen, die lizenzpflichtig ist.         |
  18.     | Die Anwendung fuer militaerische Zwecke oder |
  19.     | entsprechende Forschung ist verboten!        |
  20.     | Maerz 1990                        A.Koestli  |
  21.     ------------------------------------------------
  22.  
  23.  
  24. BC-FORTRAN77 Version C ist Teil eines umfangreichen
  25. Entwicklungssystems, der Vers.P (siehe unten). Vers.C
  26. soll in einfacher Weise den fuer Programmierkurse noetigen
  27. Compiler zur Verfuegung stellen. Dem kommt entgegen, dass
  28. diese Software fast identisch auf AMIGA, ATARI ST und
  29. MS-DOS Rechnern laeuft.
  30.  
  31.  
  32. BC-FORTRAN77 Vers.P
  33. -------------------
  34.  
  35. BC-FORTRAN77 Vers.P ist ein umfangreiches Entwicklungs-
  36. system, das ausser Compiler und Linker auch noch Editor,
  37. Precompiler und Versionsverwaltung unter einer Benutzer-
  38. oberflaeche vereinigt. Dabei wird dafuer gesorgt, dass im
  39. Entwicklungszyklus automatisch nur die jeweils veraen-
  40. derten Unterprogramme neu uebersetzt werden; selbst bei
  41. Programmen mit mehreren hundert Unterprogrammen ergibt
  42. sich so ein Entwicklungsschritt (Editieren, uebersetzen,
  43. linken und starten) von wenigen Sekunden. Mathematische
  44. Koprozessoren werden in Vers.P unterstuetzt, ebenso wie
  45. spezielle Befehle des 68020 Prozessors.
  46.  
  47. Vers.P enthaelt einen komfortablen Debugger auf Quelltext
  48. Basis zum interaktiven Austesten sowie einige Biblio-
  49. theken z.B. zur einfachen Plotausgabe auf dem Bildschirm.
  50.  
  51. Inklusive 150 Seiten Handbuch kostet BC-FORTRAN77 Vers.P
  52. DM 350.- und kann bei der oben angegebenen Adresse
  53. bestellt werden. (Bitte AMIGA oder ATARI ST angeben. Fuer
  54. MS-DOS existiert Vers.P derzeit nicht.)
  55.  
  56.  
  57.  
  58. BC-FORTRAN77 Vers.C
  59. -------------------
  60.  
  61. BC-FORTRAN77 Vers.C, auf die sich der Rest dieses Textes
  62. bezieht, besteht aus folgenden Dateien:
  63.  
  64.     LIES.TXT    Dieser Text
  65.     BCF.TTP     Compiler
  66.     BCL.TTP     Linker
  67.     BCRTSY.B    Laufzeitsystem
  68.     MATHLIB.B   Bibliothek mit Standardfunktionen
  69.  
  70. Wird eine Kopie angefertigt, muessen immer alle Dateien
  71. unveraendert uebernommen werden.
  72.  
  73. Am besten arbeitet man mit einer Command-Shell. Falls
  74. keine Shell vorhanden ist koennen die Programme aber auch
  75. vom Desktop gestartet werden, die Optionen und
  76. Dateinamen muessen dann in ein Window eingegeben werden,
  77. das nach dem anklicken des Programms erscheint.
  78.  
  79.  
  80.  
  81. Installation.
  82. -------------
  83.  
  84. Die einfachste Arbeitsweise ergibt sich, wenn nur in
  85. einem Directory gearbeitet wird, in dem dann alle
  86. Dateien von BC-FORTRAN77 stehen.
  87.  
  88. Sollen mehrere Directories verwendet werden, so kopiert
  89. man BCF.TTP und BCL.TTP in ein Directory, in dem die
  90. Shell nach Programmen sucht. BCRTSY.B und MATHLIB.B
  91. sollten in das Directory \BC des aktuellen Laufwerks
  92. kopiert werden, damit sie vom Linker gefunden werden.
  93.  
  94.  
  95.  
  96. Compiler
  97. --------
  98.  
  99. Der Compiler wird gestartet mit
  100.  
  101.     BCF [-Option...] Datei...
  102.  
  103. oder vom Desktop durch anklicken von BCF.TTP und
  104. anschliessender Eingabe von Optionen und Dateinamen.
  105.  
  106. Enthaelt Datei keinen Punkt, so wird .F angehaengt.
  107. Die uebersetzte Form der Programme wird in Datei.B
  108. abgelegt.
  109.  
  110. Beispiel:
  111.  
  112.     BCF -D TEST.F
  113.  
  114. Uebersetzt TEST.F mit Debug-Option nach TEST.B
  115.  
  116.     BCF TEST SUB
  117.  
  118. Uebersetzt TEST.F nach TEST.B und SUB.F nach SUB.B
  119.  
  120.     BCF TEST.X
  121.  
  122. uebersetzt TEST.X nach TEST.B
  123.  
  124.  
  125. Compiler Optionen
  126. -----------------
  127.  
  128.     -D      Debug, fasst -BVL zusammen.
  129.  
  130.     -B      deBugcode, impliziert -H und erzeugt
  131.                 ausserdem Code fuer Debuggeraufrufe,
  132.                 zum Ueberpruefen von Feldgrenzen und
  133.                 Substrings.
  134.  
  135.     -H      parcHeck, Code zum Ueberpruefen der Parameter-
  136.                 listen und auf Stackueberlauf erzeugen.
  137.  
  138.     -V      Varlist: Variablenliste fuer Debugger.
  139.  
  140.     -L      Lineslist: Zeilennummernliste fuer Debugger.
  141.  
  142.     -U      Uppercase: Klein- in Grossbuchstaben wandeln
  143.                 (ausser in Characterkonstanten und
  144.                 Formaten). Fehlt diese Option, so sind
  145.                 xy, XY, Xy und xY vier verschiedene
  146.                 Variablen!
  147.  
  148.     -F      Freeinput: Quellprogramm nicht im FORTRAN
  149.                 Format. Nichtstandart!
  150.  
  151.     -P      Protokoll: Ausgabe der uebersetzten Zeilen.
  152.  
  153.     -W      Am Ende auf Return warten, sinnvoll, wenn
  154.                 vom Desktop gestartet wird.
  155.  
  156.  
  157. Sprachumfang
  158. ------------
  159.  
  160. BC-FORTRAN77 uebersetzt den vollstaendigen Standard nach
  161. ANSI/ISO. Der Sprachstandard wird allerdings durch
  162. einige Besonderheiten verletzt (meistens werden diese
  163. als Erweiterungen bezeichnet). Ich empfehle dringend,
  164. diese Dialektkonstrukte nicht zu verwenden, da sie nicht
  165. standardisiert und damit nicht genau definiert sind.
  166.  
  167. Die wichtigsten dieser Besonderheiten:
  168.  
  169.     INTEGER*1       8 bit INTEGER
  170.     INTEGER*2      16 bit INTEGER
  171.     INTEGER*4      wie INTEGER
  172.     LOGICAL*1       8 bit LOGICAL
  173.     LOGICAL*2      16 bit LOGICAL
  174.     LOGICAL*4      wie LOGICAL
  175.     IMPLICIT NONE  abschalten der impliziten Typdef.
  176.     COMMON /%adr/  Absoluter Common, adr ist Konstante
  177.                         oder einfache Variable.
  178.     EQUIVALENCE()  zwischen Character und anderen Typen
  179.                    sowie Mischen im Common.
  180.     Rekursive Unterprogrammaufrufe.
  181.     Namen mit max. 8 Zeichen (Standart: 6).
  182.  
  183.  
  184. Als wichtigste Beschraenkungen gibt es:
  185.  
  186.     32kB Code pro Unterprogramm
  187.     32kB SAVE/DATA pro Unterprogramm oder Blockdata
  188.     700  Unterprogramme pro Datei
  189.     500  Verschiedene Commons pro Datei.
  190.  
  191. Daneben gibt es eine Reihe von Beschraenkungen, die bei
  192. unvernuenftig grossen Unterprogrammen zu Fehlermeldungen
  193. fuehren, meistens waere dann aber ohnehin die 32kB Code
  194. Grenze ueberschritten.
  195.  
  196.  
  197. Linker
  198. ------
  199.  
  200. Der Linker wird gestartet mit:
  201.  
  202.     BCL [-Optionen...] Datei...
  203.  
  204. oder vom Desktop durch anklicken von BCL.TTP und
  205. anschliessender Eingabe von Optionen und Dateinamen.
  206.  
  207.  
  208. Enthaelt Datei keinen Punkt, so wird .B angehaengt.
  209. Die Programmdatei wird mit dem Namen der ersten Datei,
  210. aber mit .PRG statt .B, gespeichert. Werden mathe-
  211. matische Standardfunktionen verwendet, so muss auch die
  212. Datei MATHLIB.B aufgefuehrt werden. Das Laufzeitsystem
  213. BCRTSY.B wird automatisch geladen.
  214.  
  215. Beispiel:
  216.  
  217.     BCL -S16 TEST SUB MATHLIB
  218.  
  219. oder
  220.  
  221.     BCL -S16 TEST.B SUB.B MATHLIB.B
  222.  
  223. Linkt die Dateien TEST.B und SUB.B und speichert unter
  224. TEST.PRG das lauffaehige Programm, das eine Stackgroesse
  225. von 16kB verwendet.
  226.  
  227.  
  228. Linker Optionen
  229. ---------------
  230.  
  231.     -Sn     Stackgroesse fuer das zu erzeugende Programm
  232.                 wird auf n kB gesetzt. Fehlt diese
  233.                 Option, so wird ein sehr grosser Stack
  234.                 angenommen. Auf dem Stack werden alle
  235.                 lokalen Variablen/Felder einer Unter-
  236.                 programmverschachtelung abgelegt.
  237.  
  238.     -O      Optimiertes Linken: nirgends aufgerufene
  239.                 Unterprogramme werden weggelassen.
  240.  
  241.     -P      Protokoll: Liste der Commonbloecke und
  242.                 Programmmodule.
  243.  
  244.     -W      Am Ende auf Return warten, sinnvoll, wenn
  245.                 vom Desktop gestartet wird.
  246.  
  247.  
  248. Beschraenkungen
  249. ---------------
  250.  
  251. Die wichtigste Beschraenkung liegt in der RAM Groesse: die
  252. zu erzeugende Programmdatei (ohne Commons und Stack)
  253. kann maximal so gross sein, wie der groesste freie
  254. Speicherblock nach Laden von BCL. Andererseits kann, bei
  255. grossen Commons oder Stack, auch ein Programm erzeugt
  256. werden, dass im vorhandenen RAM nicht gestartet werden
  257. kann.
  258.  
  259. Die Anzahl Unterprogramme ist auf 3000, die Anzahl
  260. Commonbloecke auf 1500 beschraenkt.
  261.  
  262.  
  263. Laufzeitsystem
  264. --------------
  265.  
  266. Das Laufzeitsystem BCRTSY.B enthaelt Routinen, die von
  267. einem FORTRAN77 Programm benoetigt werden und wird vom
  268. Linker in jedes Programm eingebunden.
  269.  
  270. BCRTSY enthaelt:
  271.  
  272.     Arithmetikroutinen:
  273.         32 bit INTEGER Multiplikation/Division
  274.         REAL Arithmetik
  275.         DOUBLE PRECISION Arithmetik
  276.         Es wird ein eigenes Gleitkommaformat verwendet,
  277.         das mehr auf Geschwindigkeit denn auf
  278.         Genauigkeit ausgerichtet ist.
  279.         REAL: 6 Dezimalstellen, 32 bit
  280.          1 bit Vorzeichen, 23 bit Mantisse, 8 bit Exp.
  281.         DOUBLE PRECISION: 13 Dezimalstellen, 6 bit
  282.          1 bit Vorzeichen, 47 bit Mantisse, 16 bit Exp.
  283.         Ein mathematischer Koprozessor wird in Vers.C
  284.         nicht unterstuetzt.
  285.  
  286.     CHARACTER Routinen
  287.  
  288.     I/O Routinen
  289.  
  290.     Debugger:
  291.         Ein einfacher Debugger zur Fehlersuche.
  292.         Nach einem Laufzeitfehler wird von ihm eine
  293.         Fehlermeldung ausgegeben und Eingabe erwartet.
  294.         Der Debugger kann aber auch durch Druecken der
  295.         Alternate Taste aktiviert werden, um den
  296.         Programmlauf zu unterbrechen. Folgende Tasten
  297.         erkennt der Debugger als Kommando:
  298.  
  299.             S   Ausgabe des Subroutine-Call Stacks
  300.                 Mit Zeilennummern, falls -L Option beim
  301.                 Compilieren verwendet wurde.
  302.  
  303.             V   Variablen des aktuellen Unterprogramms
  304.                 mit aktuellen Inhalten, falls mit -V
  305.                 Option uebersetzt wurde.
  306.  
  307.             Z   Programm beenden.
  308.  
  309.             Leertaste  Weiterrechnen, falls kein Lauf-
  310.                 zeitfehler auftrat. Haelt man dabei die
  311.                 Alternate Taste gedrueckt, wird ein
  312.                 Programmschritt (bis zum naechsten
  313.                 Label, Unterprogramm, ELSE, ENDIF, DO)
  314.                 ausgefuehrt.
  315.  
  316.  
  317. Bibliothek
  318. ----------
  319.  
  320. MATHLIB.B enthaelt die mathematischen Funktionen im
  321. vollen vom Standard vorgeschriebenen Umfang.
  322. Wenn beim Linken Fehlermeldungen wie z.B.
  323.  
  324.     External nicht gefunden: f_SQRT
  325.  
  326. auftauchen, so muss die MATHLIB.B beim Aufruf von BCL
  327. mit angegeben werden.
  328.  
  329.  
  330. Programmstart
  331. -------------
  332.  
  333. Eine von BCL erzeugte Programmdatei kann wie jedes
  334. andere Programm vom Desktop oder einer Shell aus
  335. gestartet werden.
  336.  
  337.  
  338. Fehlermeldungen
  339. ---------------
  340.  
  341. Die Fehlermeldungen von Compiler, Linker und
  342. Laufzeitsystem sollten, bis auf die folgende Ausnahme,
  343. selbsterklaerend sein. Die vollstaendige Auflistung (26
  344. Seiten im Handbuch der Vers.P) wuerde den Rahmen dieser
  345. Beschreibung sprengen.
  346.  
  347.    IO-Error: Nummer
  348.         Ein-/Ausgabefehler; kann abgefangen werden,
  349.         indem im IO-Statement der IOSTAT= Parameter
  350.         angegeben wird. Nummer ist derselbe Wert, der
  351.         auch in der IOSTAT Variable zurueckgegeben wird.
  352.  
  353.     Nummer
  354.  
  355.     -1   Dateiende.
  356.     -2   Dateiende inmitten eines Records.
  357.     1    Dateinummer bereits verwendet (OPEN).
  358.     2    Zu viele Dateien (OPEN). Max. 32 Dateien.
  359.     3    Dateiname zu lang (OPEN).Max. 31 Zeichen.
  360.     5    Dateinummer nicht eroeffnet. Nur die Nummern
  361.            5 und 6 koennen ohne OPEN verwendet werden.
  362.     6    Formatiert/unformatiert Widerspruch.
  363.     7    REC-Parameter fuer Datei mit ACCESS='SEQUENTIAL'
  364.     8    BACKSPACE, REWIND, ENDFILE fuer diese Datei
  365.          nicht moeglich (AUX: und PRN:).
  366.     10   Internal I/O nur formatiert.
  367.     20   INTEGER Ueberlauf bei Eingabe.
  368.     21   Datenfehler bein Listengesteuerter Eingabe,
  369.          z.B. fehlende Apostroph fuer Zeichenketten.
  370.     22   Unerwartetes Dateiende.
  371.     23   Record zu lang.
  372.     24   Lesefehler bei UNFORMATTED SEQUENTIAL.
  373.     30   Formatelement und I/O-Listelement passen nicht
  374.            zusammen.
  375.            INTEGER benoetigt ein I-Formatelement,
  376.            REAL, DOUBLE PRECISION (COMPLEX) ein (zwei)
  377.              F-, G-, E- oder D-Formatelemente,
  378.            LOGICAL ein L-Formatelement,
  379.            CHARACTER ein A-Formatelement.
  380.     31   Formatelement L: T oder F erwartet (Eingabe)
  381.     32   Formatelement I: unerwartetes Zeichen (Eingabe)
  382.            Leerzeichen, Vorzeichen und Ziffern erlaubt.
  383.     33   Formatelemente E, F oder D: unerwartetes
  384.            Zeichen (Eingabe).
  385.            Leerzeichen, Vorzeichen, Ziffern,
  386.            Dezimalpunkt, E, e, D oder d (fuer Exponent)
  387.            erlaubt.
  388.     34   Zu viele ( in Format.
  389.     35   Zu viele ) in Format.
  390.     36   Ziffernfolge an unerlaubter Stelle in Format.
  391.     37   Formatelement nicht erkannt.
  392.     38   . fehlt in F, E, G oder D Formatelement.
  393.     39   4Htext oder 'text' in Format fuer READ.
  394.            In FORTRAN66 konnte damit Text in ein Format
  395.            hineingelesen werden; in FORTRAN77 nicht
  396.            mehr erlaubt.
  397.     40   Exponent zu gross fuer gegebenes Format.
  398.     42   Formatelement zu lang. Max. Laenge des internen
  399.            Recordpuffers (80 Zeichen).
  400.     43   Internal I/O, Record zu lang.
  401.     44   TL, Record zu lang. Ist ein Record laenger als
  402.            der interne Recordpuffer, kann nicht mehr
  403.            nach links tabuliert werden.
  404.     45   Feldlaenge 0 bei I,L,F,E,G,D Formatelement.
  405.  
  406.     1000+n  TOS Error -n
  407.  
  408.     1002 Laufwerk nicht bereit.
  409.     1004 CRC (Cyclic Redundancy Code) Fehler.
  410.     1010 Schreibfehler.
  411.     1011 Lesefehler.
  412.     1013 Schreibgeschuetzt.
  413.     1014 Diskette gewechselt.
  414.     1016 Bad Sector.
  415.     1017 Diskette einlegen.
  416.     1033 Datei nicht gefunden.
  417.     1034 Pfadname (zum Verzeichnis) nicht gefunden.
  418.     1035 Zu viele Dateien.
  419.     1036 Zugriff nicht moeglich (Schreibschutz?).
  420.     1039 Nicht genuegend Speicher (RAM).
  421.     1040 Falsche Speicherblockadresse.
  422.     1046 Ungueltige Laufwerksbezeichnung. z.B. K:
  423.            Achtung, mit Q: bis Z: stuerzt TOS ab!
  424.     1066 Falsches Format fuer Programmfile.
  425.  
  426.  
  427. Probleme
  428. --------
  429.  
  430. Sollte jemand der Meinung sein, dass der Compiler,
  431. Linker oder die Bibliothek fehlerhaft sind, bitte ich um
  432. schriftliche Mitteilung. Ich bitte um Verstaendnis, dass
  433. fuer dieses Produkt (im Gegensatz zur kommerziellen
  434. Version P) Updateservice und telefonische Beratung nicht
  435. moeglich sind.
  436.  
  437.